home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 2 / Apprentice-Release2.iso / Tools / Languages / Caml Light 0.61 / Source / src / runtime / mac_os.c < prev    next >
Encoding:
C/C++ Source or Header  |  1992-08-27  |  1.1 KB  |  60 lines  |  [TEXT/MPS ]

  1. #include <Files.h>
  2. #include <Types.h>
  3. #include <errno.h>
  4.  
  5. static short prev_wd = 0;
  6.  
  7. int chdir(dirname)
  8.     char * dirname;
  9. {
  10.   char buf [256];
  11.   WDPBRec paramblock;
  12.  
  13.   if (prev_wd != 0){
  14.     paramblock.ioCompletion = NULL;
  15.     paramblock.ioVRefNum = prev_wd;
  16.     PBCloseWD (¶mblock, 0);
  17.   }
  18.  
  19.   strncpy (buf, dirname, 255);
  20.   buf [255] = 0;
  21.   c2pstr (buf);
  22.   paramblock.ioCompletion = NULL;
  23.   paramblock.ioNamePtr = buf;
  24.   paramblock.ioVRefNum = 0;
  25.   paramblock.ioWDProcID = 'Caml';
  26.   paramblock.ioWDDirID = 0;
  27.   if (PBOpenWD (¶mblock, 0) != noErr){
  28.     errno = ENOENT;
  29.     return -1;
  30.   }
  31.   prev_wd = paramblock.ioVRefNum;
  32.  
  33.   paramblock.ioCompletion = NULL;
  34.   paramblock.ioNamePtr = NULL;
  35.   paramblock.ioVRefNum = prev_wd;
  36.   paramblock.ioWDDirID = 0;
  37.   if (PBSetVol ((ParmBlkPtr) ¶mblock, 0) != noErr){
  38.     errno = ENOENT;
  39.     return -1;
  40.   }
  41.   return 0;
  42. }
  43.  
  44. char * searchpath(name)
  45.      char * name;
  46. {
  47.   return name;
  48. }
  49.  
  50. void set_file_type (name, type)
  51.     char *name;
  52.     long type;
  53. {
  54.   FInfo info;
  55.  
  56.   GetFInfo (name, 0, &info);
  57.   info.fdType = type;
  58.   SetFInfo (name, 0, &info);
  59. }
  60.